package com.ts.api.module.api.service;

import com.ts.api.module.api.entity.po.ApiKeyPO;
import com.ts.api.module.api.entity.vo.ReqApiParameterVO;
import com.ts.api.module.api.entity.vo.RespApiApplyQueryVO;
import com.ts.api.module.api.entity.vo.RespV2ApiApplyVO;
import com.ts.api.module.api.entity.vo.RespV2ApiDataExchangeVO;

/**
 *  API-对方接入我方-半流程业务层
 *
 *  @author Pan
 */
public interface ApiMsgV2Service {

    /**
     *  撞库-MD5模式
     *
     *  @param  apiKeyPO            API渠道实体
     *  @param  reqApiParameterVO   请求参数
     *  @return RespV2ApiDataExchangeVO
     */
    RespV2ApiDataExchangeVO dataExchange(ApiKeyPO apiKeyPO, ReqApiParameterVO reqApiParameterVO) throws Exception;

    /**
     *  进件-MD5模式
     *
     *  @param  apiKeyPO             API渠道实体
     *  @param  reqApiParameterVO    请求参数
     *  @return RespV2ApiApplyVO
     */
    RespV2ApiApplyVO apply(ApiKeyPO apiKeyPO, ReqApiParameterVO reqApiParameterVO);

    /**
     *  进件状态查询
     *
     *  @param  apiKeyPO             API渠道实体
     *  @param  reqApiParameterVO    请求参数
     *  @return RespApiApplyQueryVO
     */
    RespApiApplyQueryVO applyStatusQuery(ApiKeyPO apiKeyPO, ReqApiParameterVO reqApiParameterVO);
}
